const path = require("path");
const fs = require("fs");
const cwd = process.cwd();

// 获取当前目录下的所有包文件夹
const packageDirs = () => {
  // 查询所有包含Release文件夹的文件夹
  return [
    ...new Set(
      fs
        .readdirSync(cwd, {
          recursive: true,
        })
        .filter((m) => m.indexOf("Release") > -1)
        .map((m) => m.split("Release")[0] + "Release")
    ),
  ];
};

// 获取当前目录下的所有包文件夹
const packageDirsDebug = () => {
  // 查询所有包含Release文件夹的文件夹
  return [
    ...new Set(
      fs
        .readdirSync(cwd, {
          recursive: true,
        })
        .filter((m) => m.indexOf("Debug") > -1)
        .map((m) => m.split("Debug")[0] + "Debug")
    ),
  ];
};

{
	const dirs = packageDirs();
	dirs.forEach((dir) => {
	  var releasePackage = path.join(cwd, dir);
	  if (fs.existsSync(releasePackage)) {
		// 删除文件夹
		fs.rm(releasePackage, { recursive: true }, (err) => {
		  if (err) {
			console.error(`删除文件夹失败: ${err}`);
			return;
		  }
		  console.log(`删除文件夹成功: ${releasePackage}`);
		});
	  }
	});
}

{
	const dirs = packageDirsDebug();
	dirs.forEach((dir) => {
	  var releasePackage = path.join(cwd, dir);
	  if (fs.existsSync(releasePackage)) {
		// 删除文件夹
		fs.rm(releasePackage, { recursive: true }, (err) => {
		  if (err) {
			console.error(`删除文件夹失败: ${err}`);
			return;
		  }
		  console.log(`删除文件夹成功: ${releasePackage}`);
		});
	  }
	});
}
